Software Defined Network (SDN) is a new technology of network switching. Its implementation is to transform the data packet forwarding controlled by the traditional switch and router to the independent processes completed by the SDN switch and SDN controller. The SDN switch may maintain a flow table which is similar to the function of the forwarding table in the traditional switch and router. If a data packet to be forwarded has a matched keyword entry (also called as “flow entry”) in the flow table, the switch may perform fast forwarding process in a chipset (or similar component) for the data packet. If the data packet does not have a matched keyword entry in the flow table, the data packet may match with a default entry and may be sent to the controller. The controller may calculate a forwarding path which may include a plurality of switches for the data packet. The SDN controller may respectively distribute keyword entry for each switch in the forwarding path so that all switches could know how to process the subsequent data packets of the same flow.